The present invention relates generally to programming sensors into collaborative sensing groups.
The commoditization of hardware and recent developments in middleware software for wireless sensor networks (WSN) have made it possible for these systems to find practical use. There are substantial advantages to using wireless sensor networks over traditional sensor systems. Wireless systems require no manual wiring installation, enabling ad-hoc and scalable deployment of sensors. In addition, the presence of intelligent nodes enables in-situ processing for faster local reactions. From manufacturing to supply chain, there are several industries that can benefit from WSN. In general, these environments have traditionally used fixed wiring sensing infrastructures with centralized data and command control. These centralized systems lack flexibility in deployment, real-time data processing, and the fast reactive capabilities of WSN. In addition, a centralized system makes it difficult to scale in the number of sensors because of lack of bandwidth at the central point of data collection. Wireless sensors networks could replace these centralized systems. However, unless they are demonstrably easier to program and maintain than existing solutions, they will not be widely used.
Some of the challenges in programming wireless sensor networks arise from the need for sensor nodes to adapt their behavior to changes in context. How a node processes sensor data and interacts with other sensor nodes may depend on the sensor types present in the network and their location. For example, in a pallet tracking radio-frequency identification (RFID) system for warehouses, composed of motion sensors and RFID readers which read RFID tags (e.g., microchips that listen for a radio query and respond by transmitting their unique ID code), the behavior of the sensors will vary depending on sensor type and location. In these systems, RFID readers and motion sensors are deployed in groups at entry doors to read RFID tags (via RFID readers) of products passing through the door (detected by a motion sensor). Depending on whether the motion sensor is present or not, two behaviors are desirable. The optimal behavior is to activate the RFID readers only when the motion sensor detects an object in its line of sight, so as to minimize spurious reads. If the motion sensor breaks or is removed, the second best behavior is to continuously trigger the read cycles of the RFID readers, minimizing the possibility that a product may be missed. This example shows that a change in sensors requires a change in behavior. Re-programming the sensors every time there is a change in context, however, is neither practical nor feasible, especially when the number of sensors is large.
It would be desirable to have a technique which allows sensors of a sensor network to automatically form clusters based on sensor attributes such as sensor type and sensor location, and which allows automatic reprogramming triggered by changes in network context.